package cn.yh.nft.turbo.api.chain.service;

import cn.yh.nft.turbo.api.chain.request.ChainProcessRequest;
import cn.yh.nft.turbo.api.chain.response.ChainProcessResponse;
import cn.yh.nft.turbo.api.chain.response.data.ChainCreateData;
import cn.yh.nft.turbo.api.chain.response.data.ChainOperationData;

/**
 * @ClassName: ChainFacadeService
 * @Author: 草莓爱上啵啵
 */
public interface ChainFacadeService {


    /**
     *  创建链账户
     * @param request 接收链请求的参数类型
     * @return 返回链响应结果
     */
    ChainProcessResponse<ChainCreateData> createAddr(ChainProcessRequest request);


    /**
     * 上链藏品
     * @param request
     * @return
     */
    public ChainProcessResponse<ChainOperationData> chain(ChainProcessRequest request);

    /**
     *  铸造藏品
     * @param request 接收链请求的参数类型
     * @return 返回链响应结果
     */
    ChainProcessResponse<ChainOperationData> mint(ChainProcessRequest request);

    /**
     * 交易藏品
     * @param request 接收藏品的请求参数
     * @return 返回藏品的响应结果
     */
    ChainProcessResponse<ChainOperationData> transfer(ChainProcessRequest request);

    /**
     * 销魂藏品
     * @param request 接收藏品的请求参数
     * @return 返回藏品的响应结果
     */
    ChainProcessResponse<ChainOperationData> destroy(ChainProcessRequest request);
}
